import { useUserStore } from '@/store/user.js'

export function setupRouterGuard(router) {
  // 全局前置守卫
  router.beforeEach(async (to, from, next) => {
    const userStore = useUserStore()
    
    // 需要认证的页面
    const requiresAuth = to.matched.some(record => record.meta.requiresAuth)
    
    // 需要管理员权限的页面
    const requiresAdmin = to.matched.some(record => record.meta.requiresAdmin)
    
    // 仅游客可访问的页面
    const guestOnly = to.matched.some(record => record.meta.guestOnly)
    
    // 如果路由需要管理员权限但用户不是管理员
    if (requiresAdmin && !userStore.isAdmin) {
      next({ path: '/' })
    }
    // 如果路由需要认证且用户未登录
    else if (requiresAuth && !userStore.isLoggedIn) {
      next({
        path: '/auth/login',
        query: { redirect: to.fullPath }
      })
    } 
    // 如果用户已登录但访问的是仅游客可访问的页面（如登录/注册页）
    else if (userStore.isLoggedIn && guestOnly) {
      next('/')
    } 
    // 其他情况正常放行
    else {
      next()
    }
  })
}